import logging
import os
import time
import colorlog

# 如果您有自己的配置模块，请确保正确导入 log_path
# from config.config_os import log_path

# 这里直接定义日志文件的存储路径
# 获取当前脚本所在目录的绝对路径
current_path = os.path.dirname(os.path.abspath(__file__))
# 定义日志文件存储路径为当前目录下的 logs 文件夹
log_path = os.path.join(current_path, 'logs')
# 如果日志目录不存在，则创建
if not os.path.exists(log_path):
    os.makedirs(log_path)

# 为不同级别的日志配置不同的颜色
log_color_config = {
    "DEBUG": "white",
    "INFO": "green",
    "WARNING": "yellow",
    "ERROR": "red",
    "CRITICAL": "bold_red",
}

# 创建日志记录器，并设置级别为 DEBUG
log = logging.getLogger(__name__)
log.setLevel(logging.DEBUG)

# 获取当前日期，作为日志文件名的一部分
daytime = time.strftime("%Y-%m-%d", time.localtime())

# 设置日志文件的路径和文件名
filename = os.path.join(log_path, f"{daytime}.log")

# 创建控制台处理器，并设置级别为 DEBUG
console_handler = logging.StreamHandler()
console_handler.setLevel(logging.DEBUG)

# 创建文件处理器，并设置级别为 DEBUG
file_handler = logging.FileHandler(filename=filename, mode='a', encoding='utf-8')
file_handler.setLevel(logging.DEBUG)

# 创建格式化器
console_formatter = colorlog.ColoredFormatter(
    fmt='%(log_color)s[%(asctime)s] [%(name)s] [%(levelname)s] %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S',
    log_colors=log_color_config
)
file_formatter = logging.Formatter(
    fmt='[%(asctime)s] [%(name)s] [%(levelname)s] %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S'
)

# 为处理器设置格式化器
console_handler.setFormatter(console_formatter)
file_handler.setFormatter(file_formatter)

# 将处理器添加到日志记录器
log.addHandler(console_handler)
log.addHandler(file_handler)

# 测试代码
if __name__ == '__main__':
    log.debug("这是调试信息")
    log.info("这是一般信息")
    log.warning("这是警告信息")
    log.error("这是错误信息")
    log.critical("这是严重错误信息")
